package com.jshop.common.utils;

import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;

public class Str {
	public static boolean isEmpty(String str){
		return str == null || "".equals(str);
	}
	
	public static String logMsg(String msg, Object... args) {
		return String.format(msg, args);
	}
	
	public static String getRandom() {
		return UUID.randomUUID().toString().replaceAll("-", "");
	}
	
	/**
	 * 过滤 ;当instr==null时返回长度为0的""; <br>
	 * 与 nvl(...)系的区别在于只处理null ,不处理长度为0的"";
	 * 
	 * @param instr
	 * @return
	 */
	public static String nvl(String instr) {
		return nvl(instr, "");
	}

	/**
	 * 过滤 ,把null和长度为0的""当成同一种情况处理; <br>
	 * 当instr==null||"".equals(instr)时返回defaultValue ;其它情况返回 instr
	 * 
	 * @param instr
	 * @param defaultValue
	 * @return
	 */
	public static String nvl(String instr, String defaultValue) {
		return instr == null || "".equals(instr) ? defaultValue : instr;
	}
	
	/**
	 * 如果str的长度超过了c则取c-sub.length长度,然后拼上sub结尾
	 * 
	 * @param str
	 * @param c
	 * @param sub
	 * @return
	 */
	public static String suojin(String str, int c, String sub) {
		if (isEmpty(str))
			return str;
		if (str.length() <= c)
			return str;
		sub = nvl(sub);
		c = c - sub.length();
		c = c > str.length() ? 0 : c;
		str = str.substring(0, c);
		return str + sub;
	}

	/**
	 * 跟当前时间对比 -得出相差的天数
	 * @param date
	 * @throws ParseException
	 */
	public static Integer compareToTime(Date date)  {

		Calendar c1 = Calendar.getInstance();   //当前日期
		Calendar c2 = Calendar.getInstance();
		c2.setTime(date);   //设置为另一个时间

		int day = c1.get(Calendar.DAY_OF_YEAR);
		int day2 = c2.get(Calendar.DAY_OF_YEAR);
		//当前日期-传进来的时间
		Integer num=  day2-day;
		return num;
	}
}
